package com.isotronica.neveras.datos.daos;

import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Time;
import java.util.ArrayList;

import com.isotronica.neveras.util.dtos.DatosSensorDTO;
import com.isotronica.neveras.util.vos.DatosVO;

public class DatosSensorDAO extends GenericDAO<DatosSensorDTO> {

	public DatosSensorDAO(Connection connection) {
		super(connection);		
	}
	
	public DatosSensorDTO getDatosSensor(int sensor) {

		initGenericCreator();

		ArrayList<Object> parametros = new ArrayList<Object>();
		parametros.add(sensor);
		

		try {
			return super.callStorageQuerySingle("getDatosSensor", parametros);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	public String actualizado(int sensor) {
		ArrayList<Object> parametros = new ArrayList<Object>();
		parametros.add(sensor);
		

		try {
			return super.callStorageInsert("actualizado", parametros);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;

	}
	
	public String actualizando(int sensor) {
		ArrayList<Object> parametros = new ArrayList<Object>();
		parametros.add(sensor);
		

		try {
			return super.callStorageInsert("actualizando", parametros);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;

	}
	
	public String limpiarModificado(int idSensor) {
		ArrayList<Object> parametros = new ArrayList<Object>();
		parametros.add(idSensor);

		try {
			return super.callStorageInsert("limpiarModificado", parametros);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;

	}
	
	public void initGenericCreator() {
		creator = new CallBackCreator<DatosSensorDTO>() {
			public DatosSensorDTO create(ResultSet rs) throws SQLException {
				DatosSensorDTO dto = new DatosSensorDTO();
				dto.setIdNevera(rs.getInt("idNevera"));
				dto.setModificado(rs.getBoolean("modificado"));
				dto.setFecha(rs.getDate("fecha"));
				dto.setHora(rs.getTime("hora"));

				dto.setCiudad(rs.getString("ciudad"));
				dto.setNombre(rs.getString("nombre"));
				dto.setTelA(rs.getString("telA"));
				dto.setTelB(rs.getString("telB"));
				dto.setTempMax(rs.getFloat("tempMax"));
				dto.setTempMin(rs.getFloat("tempMin"));
				return dto;
			}

			public String getIdColumn() {
				return "id";
			}
		};
		super.setCreator(creator);
		
	}
}
